
public class bubbleSort{
	/**
	 * 分类： 内部比较排列
	 * 数据结构：数组
	 * 最差时间复杂度：O(n^2)
	 * 最优时间复杂度: 如果序列在一开始就已经大部分排序过的话，会接近O(n)
	 * 平均时间复杂度：O(n^2)
	 * 所需辅助空间：O(1)--(我的这种方法不需要辅助空间)
	 * 稳定性：稳定
	 * [sort description]冒泡排序算法，升序排列
	 * @param array [description]
	 */
	public void sort(int [] array){
		int len = array.length;
		for (int i=0; i<len; i++) {
			for (int j=1; j<len-i; j++) {  //在第i次循环中，有i个数已经排好序，待排序的数字有len-i
				if (array[j-1] > array[j]) {  //从0到len-1个数中，如果前面的数比后面的大，则交换位置
					array[j-1] = array[j-1] ^ array[j];
					array[j] = array[j-1] ^ array[j];
					array[j-1] = array[j-1] ^ array[j];
				}
			}
		}
	}
}

/**
 * 交换a和b的一种方法，不需要额外的存储空间：
 * a = a ^ b;
 * b = a ^ b;
 * a = a ^ b;
 * 并且异或运算属于位运算，速度快
 */